#!/bin/bash

# NW.js Windows 打包脚本
set -e

APP_NAME="CarPose"
RELEASE_DIR="./release"
NW_VERSION="0.92.0"  # 使用稳定版本
PLATFORM="win-x64"

echo "开始打包 NW.js Windows 应用..."

# 创建 Windows release 目录
WIN_RELEASE_DIR="${RELEASE_DIR}/win"
rm -rf "$WIN_RELEASE_DIR"
mkdir -p "$WIN_RELEASE_DIR"

# 下载 NW.js Windows 版本
echo "下载 NW.js $NW_VERSION for Windows..."
NW_URL="https://dl.nwjs.io/v${NW_VERSION}/nwjs-v${NW_VERSION}-${PLATFORM}.zip"
cd "$WIN_RELEASE_DIR"

if ! command -v curl &> /dev/null; then
    echo "错误: 需要 curl 命令"
    exit 1
fi

curl -L -o nwjs.zip "$NW_URL"
unzip -q nwjs.zip
rm nwjs.zip

# 重命名目录
NW_DIR="nwjs-v${NW_VERSION}-${PLATFORM}"
if [ -d "$NW_DIR" ]; then
    mv "$NW_DIR" "${APP_NAME}"
else
    echo "错误: NW.js 目录未找到"
    exit 1
fi

# 创建 app.nw
cd ../..
echo "打包项目文件..."
zip -r "$WIN_RELEASE_DIR/app.nw" \
    css/ \
    js/ \
    lib/ \
    modules/ \
    images/ \
    index.html \
    package.json \
    points.js \
    README.md \
    -x "*.DS_Store" "*/.git/*" "*/node_modules/*"

# 将 app.nw 与 nw.exe 合并为单一可执行文件
echo "创建 Windows 可执行文件..."
cd "$WIN_RELEASE_DIR/${APP_NAME}"

# 方法1: 合并 nw.exe 和 app.nw 为单一 exe（推荐）
cat nw.exe ../app.nw > "${APP_NAME}.exe"
rm nw.exe

# 清理临时文件
rm ../app.nw

echo ""
echo "✓ 打包完成！"
echo "应用路径: $WIN_RELEASE_DIR/${APP_NAME}/"
echo "主程序: $WIN_RELEASE_DIR/${APP_NAME}/${APP_NAME}.exe"
echo ""
echo "Windows 用户可以直接运行 ${APP_NAME}.exe"
echo ""
echo "提示: 将整个 ${APP_NAME} 文件夹打包成 zip 分发给 Windows 用户"
